home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************/
- /*
- C de Cerca 1
- Introducción al lenguaje C y su aplicación
- para la programación del Mac
-
- Rafael Escoté - Enric Herrera
- ©BlauSoft S.L. para MacFormat España - 1996
-
- La descripción del código y la información sobre cómo preparar
- el entorno de programación y generar estos programas, está contenida
- en el ejemplar de MacFormat que los acompaña.
-
-
- */
- /*****************************************************************/
-
-
-
- /**************************************************************** */
- /* DECLARACION DE PROTOTIPOS DE LAS FUNCIONES QUE HEMOS CREADO */
- /* EN NUESTRO PROGRAMA */
- /**************************************************************** */
- void main(void); /* Esta función NO puede tener otro nombre */
- void MF_InitToolbox (void); /* Preparar el Mac */
- void MF_AbreMiVentana (void); /* Abrir una ventana */
- void MF_EscribeTexto (void); /* Poner en ella un texto */
- void MF_bucle_principal(void); /* Esperar acciones del usuario */
-
-
-
- /**************************************************************** */
- /* CONSTANTES Y VARIABLES GLOBALES */
- /* RELACIONADAS CON LA VENTANA QUE ABRIREMOS */
- /**************************************************************** */
- /* La ventana que abriremos será creada dinámicamente por medio de
- la función NewWindow() que nos devolverá un puntero a la estructura de
- la nueva ventana, Declaramos pues, una variable adecuada... */
-
- WindowPtr gMiVentana = nil;
-
-
-
- /*--------------------------------------------------------------------*/
- /* A PARTIR DE ESTE PUNTO, APARECE EL CODIGO DE LAS FUNCIONES CREADAS
- ESPECIFICAMENTE PARA ESTE PROGRAMA.
- /*--------------------------------------------------------------------*/
-
-
-
- /**************************************************************** */
- /* FUNCION: main() */
- /**************************************************************** */
- /*
- Todos los programas en C poseen una función que debe llamarse main.
- Cuando un programa se pone en marcha, lo hace SIEMPRE ejecutando
- en primer lugar la función main().
- Es el punto de entrada a nuestra aplicación.
-
- Recibe: nada
- Que hace: Llama otras funciones que preparan la aplicación...
- Salida: void (nada)
- */
- void main (void)
- {
- /* Antes de hacer nada, debemos preparar el entorno de nuestro programa.*/
- /* Como sea que el procedimiento a seguir es casi siempre el mismo, */
- /* hemos creado una función MF_InitToolbox() que realiza la preparación */
- /* adecuada */
- MF_InitToolbox();
-
- /* Ahora empleamos una función que se encargará de abrir una ventana */
- MF_AbreMiVentana();
-
- /* Una vez abierta la ventana, podemos escribir algo de texto en ella */
- MF_EscribeTexto();
-
- /* Y ya podemos entrar en el bucle principal, que se encargará de
- recoger e interpretar las acciones del usuario */
- MF_bucle_principal();
-
- /* Cuando el bucle principal haya terminado, será porque el usuario
- desea acabar el programa.
- Debemos liberar la memoria ocupada por nuestra ventana. */
- DisposeWindow(gMiVentana);
-
- /* Y ya está, al acabarse la función main(), el Sistema cerrará
- nuestra aplicación de forma automática */
-
- } /* Fin de main() y del programa */
-
-
-
-
- /**************************************************************** */
- /* MF_bucle_principal */
- /**************************************************************** */
- /*
- Recibe: nada
- Que hace: Entra en un bucle y espera que se produzca una acción
- En esta demo, simplemente esperamos que el usuario pulse una vez el
- botón del ratón. Cuando lo haga, la función acabará y el programa
- volverá a la función main().
- Salida: nada
- */
- void MF_bucle_principal(void)
- {
-
- while (Button() == 0) ; /* Esperamos que el usuario pulse el botón */
-
- } /* Fin de la función MF_bucle_principal() */
-
-
-
- /**************************************************************** */
- /* MF_InitToolbox */
- /**************************************************************** */
- /*
- Inicializa la Toolbox Macintosh. El orden de llamada a las diversas
- rutinas es significativo! No lo cambie.
-
- Recibe: nada
- Cambia: nada en la aplicación
- Salida: nada
- */
- void MF_InitToolbox (void)
- {
- InitGraf(&qd.thePort);
- InitFonts();
- FlushEvents(everyEvent,0);
- InitWindows();
- InitMenus();
- TEInit();
- InitDialogs(0L);
- InitCursor();
-
- } /* Fin de MF_InitToolbox() */
-
-
-
- /**************************************************************** */
- /* MF_AbreMiVentana */
- /**************************************************************** */
- /*
- Abre la ventana (la única) de nuestro programa. Las funciones empleadas
- y el significado de los parámetros que utilizamos se comentarán en posteriores
- versiones de esta aplicación.
-
- Recibe: nada
- Que hace: Crea una ventana...
- Salida: void (nada)
- */
- void MF_AbreMiVentana(void)
- {
- /* Declaración e inicialización de una variable de tipo Rect */
- Rect miRectangulo = { 48, 8,108, 300 };
-
- gMiVentana = NewWindow( nil,
- &miRectangulo,
- "\pC de Cerca - 1",
- true,
- documentProc,
- (WindowPtr)-1L,
- false,
- nil);
-
- if(gMiVentana == nil)
- ExitToShell(); /* Si la creación de la ventana falla,
- posiblemente sea debido a falta de memoria libre
- Lo más aconsejable es salir de la aplicación YA,
- empleando ExitToShell()
- */
-
- } /* Fin de MF_AbreMiVentana() */
-
-
-
- /****************************************************************/
- /* MF_EscribeTexto */
- /****************************************************************/
- /*
- Dibuja en nuestra ventana un texto.
-
- Recibe: nada
- Cambia: Escribe un texto en la ventana
- Salida: nada
- */
- void MF_EscribeTexto()
- {
-
- SetPort(gMiVentana);
- MoveTo(15,20);
- DrawString("\pLa mínima expresión de un programa en C.");
- MoveTo(15,35);
- DrawString("\pHaga clic para salir...");
-
- } /* Fin de MF_EscribeTexto() */